package com.课上案例练习.枚举类;

/**
 * 枚举就是规定好指定范围，所有内容只能从指定的范围中取得
 * 枚举就是用来限制内容
 * 使用枚举大大减少错误的概率
 * <p>
 * 1.枚举中声明每个枚举，每个枚举类的实例化
 * 2.枚举类可以有声明属性，方法和构造器，也可以实现接口，但是枚举类的构造器必须是私有的，默认也是私有的
 * 所以它不可以实例化
 * 抽象方法实现需要匿名内部类去重写
 * 3.枚举类不能继承其他类，因为它本来就继承了Enum，枚举类在定义的时候默认是final的，所以枚举类也不可以被继承，而且枚举类有它独有的方法
 * 但是枚举类可以是实现接口
 * 4.如果一个枚举只有一个值，则这个就是一个单例模式
 *
 */
public class Test1 {
    /**
     * 枚举不允许实例化
     */
    public static void main(String[] args) {
        System.out.println(Gender.男.getDesc());
    }

}

/**
 * 定义了一个枚举类
 */
enum Gender {
    男("男人"),
    女("女人");

    //    //没有使用枚举的情况下达到枚举的效果
//    public final static Gender 男 = new Gender("男人");
//    public final static Gender 女 = new Gender("女人");
    private String desc;

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    Gender(String desc) {
        this.desc = desc;
    }
}

